%%

%class ContaScanner
%function getToken
%type ContaToken
%yylexthrow Exception
%line
%column

%state STRING

digit = [0-9]
letter = [a-zA-Z]
alpha = {letter} | {digit} | [_]
space = [ \n\t\r]

%%

<YYINITIAL> {

":"					{ return new ContaToken(ContaToken.SEPARADOR); }

","					{ return new ContaToken(ContaToken.VIRGULA); }

{letter}*			{ return new ContaToken(ContaToken.PALAVRA, yytext()); }

{digit}+			{ return new ContaToken(ContaToken.NUMERO, yytext()); }

{space}    			{ }

}

.  { throw new Exception("Scanner error at line " + yyline + " column " + yycolumn + ", token: " + yytext()); }
